package com.mcdev.minecraftTest;

import com.mcdev.minecraftTest.listeners.PlayerListener;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;
import java.util.HashMap;
import java.util.UUID;

/**
 * 作业要求：
 *  完成项目中的所有 todo
 *  获取配置文件对象：   getConfig()
 *
 */

public final class MinecraftTest extends JavaPlugin {

    private HashMap<UUID, Integer> cacheBlockNum;

    @Override
    public void onEnable() {
        // Plugin startup logic
        loadCfg();                              //初始化配置文件
        cacheBlockNum = new HashMap<>();        //初始化缓存map
        getServer().getPluginManager().registerEvents(new PlayerListener(),this);   //注册监听器
    }

    /**
     * 初始化配置文件的方法
     */
    private void loadCfg() {
        File f = new File(getDataFolder(),"config.yml");
        if (f.exists()){
            getLogger().info("检测到配置文件,开始加载");
        }else{
            getLogger().info("配置文件不存在，释放");
            saveDefaultConfig();
        }
        getLogger().info("插件配置加载成功");
        reloadConfig();
    }

    /**
     * 当插件停用时触发
     */
    @Override
    public void onDisable() {
        // Plugin shutdown logic
        getLogger().info("插件Disable");
    }

    /**
     * 触发plugin.yml中注册的commands时触发
     * @param sender Source of the command
     * @param command Command which was executed
     * @param label Alias of the command which was used
     * @param args Passed command arguments
     */
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        //todo: 检测指令触发，若指令为"/tc test"时，给玩家发送配置文件中的message.success
        return false;
    }
}
